import sqlite3 from 'sqlite3';
import { open } from 'sqlite';

// 打开数据库连接
async function getDbConnection() {
    return open({
        filename: './instance/site.db', // 数据库文件路径
        driver: sqlite3.Database,
    });
}
// 获取销售账单数据
async function getSellBill() {
    try {
        const db = await getDbConnection();

        // 查询所有数据
        const rows = await db.all('SELECT * FROM sellBill');

        // 关闭数据库连接
        await db.close();

        // 返回查询结果
        return rows; // rows 已经是对象数组，无需额外转换
    } catch (error) {
        console.error('获取数据失败:', error);
        throw error; // 抛出错误，由调用者处理
    }
}

// 示例调用
const data = {
    '记录的创建日期': '2023-10-01',
    '交货单号': '2020003027',
    '售达方名称': '上海莫道贸易有限公司',
    '销售订单项目短文本': '香雪手抓饼用小麦粉168#-25kg',
    '结算含税金额（元）': 100450.0,
    '交货数量（吨）': 28.7,
    '备注': '苏H5766L，王兆军18932302203身份证320821197104151930',
};
// 示例调用
// getSellBill()
//     .then(rows => {
//         console.log('获取到的数据:', rows);
//     })
//     .catch(error => {
//         console.error('发生错误:', error);
//     });// 插入销售账单数据（如果表不存在则先创建表）
async function addSellBill(data) {
    let db;
    try {
        db = await getDbConnection();

        // 检查表是否存在
        const tableExists = await db.get(
            "SELECT name FROM sqlite_master WHERE type='table' AND name='sellBill'"
        );

        // 如果表不存在，则创建表
        if (!tableExists) {
            await db.exec(`
                CREATE TABLE sellBill (
                    occurAge  TEXT NOT NULL,
                    numbers TEXT,
                    client TEXT NOT NULL,
                    oneText TEXT NOT NULL,
                    univalence REAL NOT NULL,
                    sums REAL NOT NULL,
                    note TEXT
                )
            `);
            console.log('表创建成功');
        }

        // 插入数据
        await db.run(
            `INSERT INTO sellBill (occurAge, numbers, client, oneText, univalence, sums, note)
             VALUES (?, ?, ?, ?, ?, ?, ?)`,
            [
                data['记录的创建日期'],
                data['交货单号'],
                data['售达方名称'],
                data['销售订单项目短文本'],
                data['结算含税金额（元）'],
                data['交货数量（吨）'],
                data['备注'],
            ]
        );

        console.log('数据插入成功',data);
        return true; // 插入成功
    } catch (error) {
        console.error('操作失败:',data, error);
        return false; // 插入失败
    } finally {
        // 关闭数据库连接
        if (db) {
            await db.close();
        }
    }
}

export {addSellBill, getSellBill}